import store from "@/store/index.js";
import { tenantId } from "@/envConfig";

/**
 * 请求拦截
 * @param {Object} http
 */
export const requestInterceptors = () => {
  /**
   * 请求拦截
   * @param {Object} http
   */
  uni.$u.http.interceptors.request.use(
    (config) => {
      // 可使用async await 做异步操作
      // 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
      config.data = config.data || {};
      //当前接口需要登录 token 不存在
      if (config.custom.needToken && !store.state.user.token) {
        return;
      }

      config.header.Authorization = store.state.user.token;
      // 如果没有传递这个字段，就默认使用当前环境变量中的tenantId
      if (!config.data.tenantId) {
        config.data.tenantId = tenantId;
      }
      return config;
    },
    (
      config, // 可使用async await 做异步操作
    ) => Promise.reject(config),
  );
};
